From: Marco Trevisan (TreviƱo) Date: Tue, 2 Feb 2021 15:30:11 +0000 (+0100) Subject: gdm: Do not fail the whole authentication if a background service failed X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~365 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=36fba1a184dc6a142de2acd401224c9f323f8acc;p=gnome-shell.git gdm: Do not fail the whole authentication if a background service failed In case a background service such as the fingerprint authentication fails to start we'd just mark the whole authentication process as failed. Currently this may happen by just putting a wrong password when an user has some fingerprints enrolled, the fingerprint gdm authentication worker may take some time to restart leading to a failure and this is currently also making the password authentication to fail: JS ERROR: Failed to start gdm-fingerprint for u: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.Spawn.Failed: Could not create authentication helper process _promisify/proto[asyncFunc]/ --- diff --git a/js/gdm/util.js b/js/gdm/util.js index 587a2c941..046560919 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -501,6 +501,11 @@ var ShellUserVerifier = class { } catch (e) { if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) return; + if (!this.serviceIsForeground(serviceName)) { + logError(e, 'Failed to start %s for %s'.format(serviceName, this._userName)); + this._hold.release(); + return; + } this._reportInitError(this._userName ? 'Failed to start verification for user' : 'Failed to start verification', e);